package com.cskaoyan.javase.basic._1identifier;
/**
 * 标识符
 *  问题1：什么是标识符？
 * 编程的过程就是变量使用的过程。在这个使用变量的过程中，毫无疑问是需要知道变量的名字，才能更方便得去使用它。而在Java代码中，使用 标识符 表示各种各样的名字，也包括变量名。
 *
 *  问题2：标识符有什么用？
 * 上面已经说过了，标识符是一个表示名字的字符串。
 *
 *  问题3：需要标识符起名字的常见结构有哪些？
 *  主要有：
 *      1.类名（包括后面会学习的接口名、注解名等）
 *      2.方法名（main就是一个方法名）
 *      3.变量名
 *      4.包名
 *
 * 标识符命名规范
 * 语法要求
 * 对于标识符而言，如果不符合下列语法要求，会直接编译报错:
 * 1.标识符的开头必须是：
 *      字母（A~Z 和 a~z）
 *      下划线（_）
 *      美元符号（$）
 *      Unicode 字符集中编号为0xC0以及它后面的所有符号
 *      0xC0 数字以0X开头，表示一个十六进制数
 *          这包括世界上绝大多数国家的语言符号，当然包括中文 韩文 日文等
 *
 * 2.标识符的组成必须是：
 *      数字（0~9）
 *      字母（A~Z 和 a~z）
 *      美元符号（$）
 *      下划线（_）
 *      Unicode 字符集中编号为0xC0以及它后面的所有符号
 *
 * 几个注意事项：
 * 标识符不能以数字开头。
 * 不能是Java中的关键字和保留字。
 * 标识符严格区分大小写。class和Class是完全不同的概念。
 *
 * 以上是语法要求的标识符命名，而更重要的是约定俗成的规范
 * 驼峰命名法
 * 在计算机中，起名字是很常见的操作，为了起好名字，驼峰命名法就被发明了。
 * 所谓驼峰，指的是当多个单词共同组成一个字符串时，不同单词的大写和小写间隔起来，形成一种像驼峰一样的凹凸，故称之为驼峰命名法。
 * 使用驼峰命名法可以清晰得看到不同单词组成的新字符串。
 * 驼峰命名法主要有两种：
 * 小驼峰式命名法
 *      多个单词组合成一个字符串
 *      第一个单词的首字母小写 。
 *      从第二个单词开始，首字母都要大写。
 * 例如：myName，myFirstJavaProgram，myStudent,myStudent
 * 当然如果就只有一个单词,那就直接小写.比如name,age,student
 *
 * 大驼峰式命名法
 *      多个单词组合成一个字符串
 *      第一个单词的首字母大写 。
 *      从第二个单词开始，首字母都要大写
 * 例如：MyName，MyFirstJavaProgram,MyStudent,MyTeacher
 * 当然如果就只有一个单词,那就直接大写.比如Name,Age,Student
 *
 * 在符合语法的前提下，标识符在给不同结构命名时会有不同的规则
 * 这样的目的是更好得区分标识符命名的是何种结构。
 * 大前提：
 *  标识符的命名应该使用合法的英文单词，如无特别需求不要使用汉语拼音，更不能直接用汉字。
 * 分类别来说：
 *      1.类名（包括后面会学习的接口名、注解名等）应该使用大驼峰命名法。
 *      2.变量和方法的命名标识符应该使用小驼峰命名法。
 *      3.包名的命名：
 *          多数公司开发的包名会 以反转公司的域名作为开头。
 *          例如在百度做开发，项目的包名开头应该是com.baidu.xxx
 *          比如王道，会以com.cskaoyan开头
 *          包名的 单词字母应该全部小写，禁止使用大写。
 *          包名一般来说都是名词，应该使用名词的单数形式，不要使用复数形式
 *          比如一个包用来存放工具，这个包名应该叫util，而不应该叫utils
 *          约定：
 *          为了方便大家课后看代码，包名会加上序号
 *          而数字不能直接作为标识符的开头
 *          所以我们以"_数字"作为包的开头
 *          这种写法自己在开发中不要使用。
 *
 * 扩展：
 *      1.任何标识符的命名都禁止使用莫名其妙的字母组合、拼音或者拼音英文组合，更不能直接使用中文。特殊地如baidu、beijing或者和业务相关的拼音除外。
 *      2.标识符的命名开头和结尾都禁止使用下划线"_"和美元符号"$"。
 *          特别强调
 *          实际上下划线和美元符号在Java代码中是非常少见使用的
 *          尤其是美元符号，建议大家不要去使用它（因为它有特殊含义）
 *          下划线相对来说用得多一点，但有特殊的使用场景（后面再说）一般也不要使用它。
 *
 * @since 15:00
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        int _985;
        // Non-ASCII characters in an com.cskaoyan.javase.basic._1identifier.
        int 长风;
        int Class;
        // int DataClass#;
        /*
            在计算机中
            空格 制表符号 换行等看起来啥都没有的东西也是一个字符（控制字符）
         */
        // int Hello World;
        int 好きだ;


        // 注意不要犯拼写错误的小问题
        String naem;
        // student --> stu
        int stu;

        // teacher --> tea
        int tea;

        // 小写字母L和数字1不要混用
        // 代码中尽量少用单独的小写L字母
        int l1;
    }
}
class Studnet{}
